Linux 常用命令速查表
📁 文件与目录操作
ls (list)
功能:列出指定目录下的文件和子目录。
ls [选项] [路径...]常用选项
| 选项 | 说明 |
|---|---|
-l | 使用长格式(详细信息)显示。 |
-a | 显示所有文件,包括以 . 开头的隐藏文件。 |
-h | 配合 -l 使用,以人类可读的格式显示文件大小 (如 K, M, G)。 |
-t | 按修改时间排序,最新的在前。 |
-R | 递归地列出所有子目录的内容。 |
实用示例
# 以详细、易读的格式显示当前目录的所有文件
ls -lah
# 列出 /etc 目录下所有内容,并按修改时间倒序排列
ls -lt /etc
💡 小白提示:在输出中,
. 代表当前目录,.. 代表上一级目录。隐藏文件通常是系统的配置文件,没事不要乱动哦!cd (change directory)
功能:切换当前工作目录。
cd [目录路径]常用目标
| 目标路径 | 说明 |
|---|---|
.. | 切换到上一级目录。 |
~ 或 直接 cd | 切换到当前用户的家目录。 |
- | 切换到上一次所在的目录。 |
实用示例
# 进入 /var/log 目录
cd /var/log
# 返回家目录
cd ~
# 从任何地方返回到刚才所在的目录
cd -
💡 小白提示:在输入路径时,可以按 `Tab` 键,系统会自动补全路径或给出提示,非常方便!
cp (copy)
功能:复制文件或目录。
cp [选项] 源文件 目标文件常用选项
| 选项 | 说明 |
|---|---|
-r 或 -R | 递归复制,用于复制整个目录。 |
-p | 保留源文件的属性(如修改时间、权限)。 |
-v | 显示详细的复制过程。 |
实用示例
# 将 a.txt 复制为 b.txt
cp a.txt b.txt
# 将整个 project 目录复制到 /backup 目录下
cp -r project /backup
💡 小白提示:如果目标文件已存在,
cp 命令会默认覆盖它。操作前请确认,或者使用 cp -i 命令,这样在覆盖前会进行提示。mv (move)
功能:移动文件/目录,或者重命名文件/目录。
mv 源文件/目录 目标文件/目录是的,你没看错,移动和重命名是同一个命令!
实用示例
# 将 a.txt 重命名为 b.txt (在同一目录下)
mv a.txt b.txt
# 将 a.txt 移动到 /tmp 目录中
mv a.txt /tmp
# 将 a.txt 移动到 /tmp 目录并重命名为 c.txt
mv a.txt /tmp/c.txt
💡 小白提示:
mv 的逻辑是:如果目标是一个已存在的目录,就执行移动;如果目标是一个不存在的路径,就执行重命名。rm (remove)
功能:删除文件或目录。
rm [选项] 文件/目录...常用选项
| 选项 | 说明 |
|---|---|
-r 或 -R | 递归删除,用于删除目录及其内容。 |
-f | 强制删除,不进行任何提示。 |
-i | 在删除前进行交互式提示。 |
实用示例
# 删除文件 a.txt
rm a.txt
# 强制递归删除整个 project 目录及其所有内容
rm -rf project
💡 小白提示:
rm -rf 是 Linux 中最危险的命令之一!它会无情地删除一切且无法恢复。在使用前,请再三确认路径是否正确,尤其是在 `*` 通配符存在时。mkdir (make directory)
功能:创建新目录。
mkdir [选项] 目录名...常用选项
| 选项 | 说明 |
|---|---|
-p | 递归创建目录。如果父目录不存在,会自动创建。 |
实用示例
# 创建一个名为 "images" 的目录
mkdir images
# 递归创建目录 a/b/c,即使 a 和 b 不存在
mkdir -p a/b/c
📝 文本处理
cat (concatenate)
功能:查看、创建、合并文件内容。
cat [选项] [文件...]常用选项
| 选项 | 说明 |
|---|---|
-n | 显示行号。 |
实用示例
# 查看 a.txt 的内容
cat a.txt
# 查看 a.txt 的内容并显示行号
cat -n a.txt
# 将 a.txt 和 b.txt 的内容合并,并输出到 c.txt
cat a.txt b.txt > c.txt
💡 小白提示:
cat 适合查看内容较少的文件。对于大文件,它会一次性刷屏,推荐使用 less 命令。less
功能:以分页的方式交互式查看文件内容,功能比 more 更强大。
less [文件]交互操作
| 按键 | 说明 |
|---|---|
空格键 / f | 向下翻一页。 |
b | 向上翻一页。 |
/关键词 | 向下搜索关键词,按 n 查找下一个。 |
?关键词 | 向上搜索关键词,按 n 查找下一个。 |
q | 退出查看。 |
💡 小白提示:
less 是查看大日志文件的神器!它不会一次性把文件全部加载到内存,所以打开大文件速度很快。head / tail
功能:分别用于查看文件的开头几行和末尾几行。
head/tail [选项] [文件]常用选项
| 选项 | 说明 |
|---|---|
-n 数字 | 指定显示的行数,例如 -n 20 显示20行。 |
-f (仅tail) | 持续刷新显示文件末尾的新增内容,常用于实时监控日志。 |
实用示例
# 查看 a.txt 的前10行 (默认)
head a.txt
# 查看 b.txt 的后20行
tail -n 20 b.txt
# 实时监控 a.log 文件的更新
tail -f a.log
grep (Global Regular Expression Print)
功能:在文件中搜索包含指定模式(字符串或正则表达式)的行。
grep [选项] "模式" [文件...]常用选项
| 选项 | 说明 |
|---|---|
-i | 忽略大小写。 |
-v | 反向查找,显示不包含模式的行。 |
-n | 显示匹配行的行号。 |
-r | 递归搜索目录下的所有文件。 |
实用示例
# 在 a.log 中查找所有包含 "Error" 的行
grep "Error" a.log
# 在当前目录及子目录中,忽略大小写查找 "hello"
grep -ir "hello" .
💡 小白提示:
grep 是 Linux 三剑客之一,极其强大。它经常和“管道符 |”一起使用,对其他命令的输出进行过滤。例如:ps aux | grep nginx 可以查看 Nginx 相关的进程。⚙️ 系统信息与管理
ps (process status)
功能:查看系统当前运行的进程状态。
ps [选项]常用选项组合
| 选项 | 说明 |
|---|---|
aux | 显示所有用户的全部进程(BSD风格)。这是最常用的组合。 |
-ef | 以全格式显示所有进程(System V风格)。效果与aux类似。 |
实用示例
# 查看系统中的所有进程
ps aux
# 结合 grep 查找名为 nginx 的进程
ps aux | grep nginx
top
功能:实时动态地显示系统进程活动和资源占用情况(CPU, 内存等)。
top交互操作
| 按键 | 说明 |
|---|---|
P | 按 CPU 使用率排序。 |
M | 按内存使用率排序。 |
k | 输入进程ID (PID) 来结束一个进程。 |
q | 退出。 |
💡 小白提示:
top 就像是 Linux 的“任务管理器”。当你感觉系统变卡时,运行它,看看是哪个进程在“作怪”!df (disk free)
功能:查看文件系统的磁盘空间占用情况。
df [选项] [挂载点]常用选项
| 选项 | 说明 |
|---|---|
-h | 以人类可读的格式显示 (G, M, K)。 |
-T | 显示文件系统类型。 |
实用示例
# 以易读格式查看所有挂载点的磁盘使用情况
df -h
du (disk usage)
功能:估算文件或目录占用的磁盘空间大小。
du [选项] [文件/目录]常用选项
| 选项 | 说明 |
|---|---|
-h | 以人类可读的格式显示。 |
-s | 只显示总计大小,不显示子目录。 |
-c | 显示总计。 |
实用示例
# 查看当前目录下每个子目录的大小
du -h
# 只查看 project 目录的总大小
du -sh project
free
功能:显示系统内存的使用情况。
free [选项]常用选项
| 选项 | 说明 |
|---|---|
-h | 以人类可读的格式显示。 |
-s 秒数 | 持续刷新显示,如 -s 2 每2秒刷新一次。 |
实用示例
# 以易读格式查看当前内存使用
free -h
🌐 网络操作
ping
功能:测试与目标主机的网络连通性。
ping [选项] 主机名/IP地址常用选项
| 选项 | 说明 |
|---|---|
-c 次数 | 指定发送数据包的次数。 |
实用示例
# 测试与 www.google.com 的连通性,发送4个包后停止
ping -c 4 www.google.com
💡 小白提示:在 Linux 下,
ping 会一直持续下去,直到你按 `Ctrl + C` 停止。加上 -c 选项是个好习惯。ip / ifconfig
功能:查看和配置网络接口。
ip 是新一代的命令,推荐使用。ifconfig 在一些老系统上仍然很常见。
实用示例
# (推荐) 使用 ip 命令查看所有网络接口信息
ip addr show
# (旧) 使用 ifconfig 查看
ifconfig
wget / curl
功能:从网络上下载文件或获取数据。
实用示例
# 使用 wget 下载一个文件
wget https://example.com/somefile.zip
# 使用 curl 获取一个网页的源码并显示在终端
curl https://www.example.com
# 使用 curl 下载文件 (需要 -o 选项指定输出文件名)
curl -o somefile.zip https://example.com/somefile.zip
💡 小白提示:
wget 更像一个纯粹的下载器,而 curl 是一个功能强大的数据传输工具,支持多种协议,常用于 API 测试。👤 用户与权限
sudo (superuser do)
功能:以超级用户(root)或其他用户的身份执行命令。
sudo [要执行的命令]实用示例
# 以 root 权限安装软件 (在 Debian/Ubuntu 系统)
sudo apt install nginx
# 以 root 权限编辑一个系统配置文件
sudo nano /etc/hosts
💡 小白提示:当系统提示 "Permission denied" (权限不足) 时,通常就是你需要使用
sudo 的时候了。执行时会要求输入你自己的用户密码,而不是 root 密码。chmod (change mode)
功能:修改文件或目录的访问权限。
chmod [权限模式] 文件/目录权限分为读(r=4), 写(w=2), 执行(x=1)。分别对应所有者(u), 所属组(g), 其他人(o)。
常用模式
| 数字模式 | 符号模式 | 说明 |
|---|---|---|
755 | u=rwx,go=rx | 所有者可读写执行,其他人可读可执行 (常用于目录和脚本)。 |
644 | u=rw,go=r | 所有者可读写,其他人只读 (常用于普通文件)。 |
实用示例
# 赋予 a.sh 脚本可执行权限
chmod +x a.sh
# 将 project 目录权限设置为 755
chmod 755 project
# 将 a.txt 文件权限设置为 644
chmod 644 a.txt
chown (change owner)
功能:修改文件或目录的所有者和所属组。
chown [选项] 用户:组 文件/目录常用选项
| 选项 | 说明 |
|---|---|
-R | 递归修改目录及其下所有文件。 |
实用示例
# 将 a.txt 的所有者改为 tom
chown tom a.txt
# 将 project 目录及其所有内容的所有者改为 tom,所属组改为 staff
chown -R tom:staff project
🧩 软件包管理
apt (Debian / Ubuntu)
功能:基于 Debian 的系统(如 Ubuntu)中用于管理软件包的工具。
常用命令
| 命令 | 说明 |
|---|---|
sudo apt update | 更新可用软件包列表。 |
sudo apt upgrade | 升级所有已安装的软件包。 |
sudo apt install [包名] | 安装一个新的软件包。 |
sudo apt remove [包名] | 卸载一个软件包。 |
apt search [关键词] | 搜索软件包。 |
💡 小白提示:在安装任何软件前,最好先执行一次
sudo apt update,确保你的软件列表是最新的。dnf / yum (CentOS / Fedora / RHEL)
功能:基于 Red Hat 的系统(如 CentOS, Fedora)中用于管理软件包的工具。
dnf 是新一代的包管理器,yum 在老版本(如 CentOS 7)中使用。
常用命令
| 命令 | 说明 |
|---|---|
sudo dnf check-update | 检查可用的更新。 |
sudo dnf upgrade | 升级所有已安装的软件包。 |
sudo dnf install [包名] | 安装一个新的软件包。 |
sudo dnf remove [包名] | 卸载一个软件包。 |
dnf search [关键词] | 搜索软件包。 |
💡 小白提示:如果你使用的是 CentOS 7 或更早的版本,只需将命令中的
dnf 替换为 yum 即可。